package ec.linde.modulos.recursos.convertidores;

import javax.faces.bean.ApplicationScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import ec.linde.modulos.proyectos.servicio.ServicioContratista;
import ec.linde.persistencia.entidades.proyectos.Contratista;

@ApplicationScoped
@FacesConverter(forClass = Contratista.class, value = "contratistaConverter")
public class ContratistaConverter implements Converter {

	@Override
	public Object getAsObject(FacesContext context, UIComponent component, String value) {
		if (value.trim().equals("") || value == null) {
			return null;
		}
		int idEmpresa = Integer.parseInt(value);
		Contratista contratista = getServicioContratista().buscarPorId(idEmpresa);
		return contratista;
	}

	@Override
	public String getAsString(FacesContext context, UIComponent component, Object value) {
		if (value == null || value.equals("")) {
			return "";
		} else {
			return ((Contratista) value).getIdContratista() + "";
		}
	}

	public ServicioContratista getServicioContratista() {
		ServicioContratista servicioContratista = null;
		try {
			servicioContratista = (ServicioContratista) new InitialContext()
					.lookup("java:global/productividadEAR/productividadEJB/ServicioContratistaImpl");
		} catch (NamingException e) {
			e.printStackTrace();
		}
		return servicioContratista;

	}

}
